package com.aloda.service;

import com.aloda.dto.*;
import com.aloda.result.PageResult;
import com.aloda.vo.UserEditVO;
import com.aloda.vo.UserInfoVO;
import com.aloda.vo.UserLoginVO;

import java.util.List;

public interface UserService {

    /**
     * 分页查询用户
     * @param userPageDTO
     * @return
     */
    PageResult pageQuery(UserPageDTO userPageDTO);

    /**
     * 后台新增用户
     * @param userAddDTO
     */
    void addUser(UserAddDTO userAddDTO);

    /**
     * 编辑用户信息回显
     * @param id
     * @return
     */
    UserEditVO getUserById(Long id);

    /**
     * 更新用户信息
     * @param userEditDTO
     */
    void updateUser(UserEditDTO userEditDTO);

    /**
     * 用户权限设置
     * @param id
     * @param auth
     */
    void setAuth(Long id, Integer auth);

    /**
     * 批量注销用户
     * @param ids
     */
    void logoutUser(List<Long> ids);

    /**
     * 用户端用户注册
     * @param userRegisterDTO
     */
    void register(UserRegisterDTO userRegisterDTO);

    /**
     * 用户端用户登录
     * @param userLoginDTO
     * @return
     */
    UserLoginVO login(UserLoginDTO userLoginDTO);

    /**
     * 获取用户页面个人信息
     * @param id
     * @return
     */
    UserInfoVO getUserInfo(Long id);

    /**
     * 用户编辑页面信息回显
     * @return
     */
    UserEditVO getEditInfo();

    /**
     * 用户编辑个人信息
     * @param userEditInfoDTO
     */
    void editUser(UserEditInfoDTO userEditInfoDTO);
}
